// apply, call, bind的使用
const arrNum = [1, 2, 3, 4, 5];
// apply方法，传入null作为this，传入一个数组
const maxNum = Math.max.apply(null, arrNum);
console.log(maxNum);
// 调用call方法，传入null作为this，传入多个参数，相当于apply传入一个数组
console.log(Math.max.call(null, ...arrNum));
// bind返回的是一个函数，需要调用才能得到值
console.log(Math.max.bind(null,...arrNum)());


class Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
    sayName() {
        console.log(this.name);
    }
}

const person = new Person('zs', 18);
const person2 = { name: 'ls', age: 20 };
// 调用call方法，传入person2作为this，改变this指向，调用sayName方法, 此时方法中this指向person2
person.sayName.call(person2);

